GNUSH v0702

June 1st, 2007

KPIT Cummins Infosystems Limited is now releasing GNUSH v0702, a cross compiler toolchain

for Renesas (formerly Hitachi and Mitsubishi) SH series of micro controllers

SALIENT FEATURES:

1.

GNUSH v0702 is based on gcc-4.2-20061205, binutils-2.17.50, newlib-1.14.0
and gdb-6.6 (released).

2.

Latest patches have been applied to gcc, binutils and newlib sources.

For further information about the patches applied to the GNUSH toolchain, please refer to the following link,

http://www.kpitgnutools.com/phpmyfaq/index.php?aktion=artikel&rubrik=002004&id=78&lang=en

3.

Optimized libraries have been provided with this toolchain for all SH targets. To use these optimized libraries on command line; pass the option "-loptm" instead of "-lm" and "-loptc" instead of "-lc".

In HEW, select the option "Use optimized library" under "Linker"->"Archives" to use optimized libraries.

4.

Command line samples have been added for EDK7145 (SH2).

ABOUT GNUSH v0702:

Release version: GNUSH v0702
Release Date: June 1st, 2007
Platforms Supported: Red Hat GNU/Linux v8.0 or later (or compatible distribution)
Windows NT/2000/XP
Language: C, C++
Targets:

SH-1, 

SH-2,

SH-2A,

SH-2E,

SH2-DSP,

SH-3,

SH-3E,

SH3-DSP,

SH-4,

SH-4A

Object File Format: ELF


Please register at http://www.kpitgnutools.com for free technical support.
Please contact http://www.kpitgnutools.com/feedback.php for any feedback or suggestions.

CHANGES IN THIS RELEASE:

GCC:

1.

For SH2A FPU targets, 'printf' used to fail for 'int', 'long' and 'float' values.

This bug has been fixed.

2.

The following program when compiled with '-O0' optimization executes successfully, however generates heap and stack collision error while executing the program compiled with '-O2' optimization.

#include <stdio.h>
extern void func();
typedef struct abc

{
   char name[16];
}ABC;
 

main()
{

     int i;
     ABC buffer[20];
     for (i=0; i<20; i++)
     buffer[i].name[0] = 't';
     if (buffer[10].name[0] == 't')
         printf("OK\n");
     else
         printf("NOT OK\n");

}

This bug has been fixed.

BINUTILS:

1.

In v0603 and v0701 toolchains, two bugs were reported by the users:
a.  Section overlapping error was not displayed for sections having overlapping VMAs.
b.  LMA assignment to the non loadable sections such as ".bss".

These two problems have been fixed in this release.

The section overlapping error has also been enhanced. It now reports whether
VMAs or the LMAs are overlapping by displaying the appropriate addresses.

2.

Interoperability option to resolve RELA type relocations, for compatibility with Renesas SHC, is added. This option is enabled when '-mrenesas' command line option is passed to GCC.

HEW (For Windows OS only):

1. A check box for using "Optimized Libraries" has been added for GNUSH target. This check box can be selected/deselected even after creation of project.

2.

".mot" and ".x" files were not get generated when the default settings for the linker option "Output format" were changed (toggled).

This bug has been fixed.

3.

v0603 onwards, the "Disable" button under "Build->Linker->Input" tab was not working.

This problem has been fixed.

4.

The creation of "Little Endian" projects for SH2e and SH3e CPU families has been disabled in HEW.

5.

The default start-up code has been modified to set the correct value of FPSCR register.

NOTE:

 1.  GNUSH v0701 and later version toolchains can be used with HEW 4.02.00.022. 
 2.  GNUSH v0603 or older version toolchains cannot be used with HEW 4.02.00.022.

KNOWN PROBLEMS:

We intend to fix the known problems in our future releases.
We also release Maintenance Packs for critical bugs fixed in between releases.

SH-ELF:

Windows and GNU/Linux:
1.

Math libraries (excluding standard C library) with '-mrenesas' option are not working for SH2A-single CPU.

2.

For Newlib "fmod" function fails for SH2E (Big Endian), SH2A Single-Only  (Big Endian), SH3E (Big Endian), SH4 Single-Only (Big Endian as well as Little Endian) and SH4A Single-Only (Big Endian as well as Little Endian) targets.

3.

For Optimized Libraries "LOG10, LOG, LDEXP and POW" functions fail for SH4 Single-Only (Little Endian) and SH4A Single-Only (Little Endian) targets.

4. 

The following error occurs when linking a project with optimised libraries,
syscalls.c:(.text+0x17c): multiple definition of `_exit'

This error occurs due to the definition of 'exit' function in the default startup files as well as the optimised library.

Workaround: 
User needs to pass the option '-nostartfiles' while building the code with optimised libraries.

This problem will be solved in the next release.

HEW (For Windows OS only):

1.

Stack trace information is not available in HEW while debugging applications.

NOTE:

Windows and GNU/Linux:

1. The optimized libraries are available along with the Newlib libraries in the toolchain and do not require to be downloaded separately.

2.

The optimized libraries ('liboptm.a' and 'liboptc.a') are not provided under GNU GPL. The source code of the optimized libraries is neither released nor available on request.

3.

Latest GDB and simulator, provided with this toolchain release must be used with v0702 toolchain.